package category.model.dao;

import java.sql.SQLException;
import java.util.HashMap;
import java.util.List;

import org.apache.ibatis.session.SqlSessionFactory;

import category.domain.Product;
//싱글톤
public class CategoryDAO {
	private static CategoryDAO instance = new CategoryDAO();
	//TODO 생성자에서 대입
	private SqlSessionFactory factory; 
	private CategoryDAO(){

	}
	public static CategoryDAO getInstance(){
		return instance;
	}
	/**
	 * TODO 대분류 카테고리 조회
	 * @return List내에 조회한 대분류 값들을 저장하여 return
	 *              대분류 값 하나는 HashMap으로 설정. key-식별자, value-조회한 내용
	 *              
	 *              //컬럼:first_category_id = F1, first_category_name = 전자제품
	 *              map.put("first_category_id", "F1");
	 *              map.put("first_category_name", "전자제품");
	 *              
	 *              map.put("F1", "전자제품");(X)
	 * @throws SQLException
	 */
	public List<HashMap<String, String>> selectAllFirstCategory() throws SQLException{

		return null;
	}
	/**
	 * 중분류 카테고리 조회
	 * 
	 * @param firstCategory 대분류 ID
	 * @return List내에 조회한 중분류 값들을 저장하여 return
	 *              중분류 값 하나는 HashMap으로 설정. key-식별자, value-조회한 내용 
	 * @throws SQLException
	 */
	public List<HashMap<String, String>> selectSecondCategoryByFId(String firstCategoryId) throws SQLException{

		return null;
	}
	/**
	 * 중분류 카테고리 조회
	 * 
	 * @param sencodCategory 중분류 ID
	 * @return List내에 조회한 소분류 값들을 저장하여 return
	 *              소분류 값 하나는 HashMap으로 설정. key-식별자, value-조회한 내용 
	 * @throws SQLException
	 */
	public List<HashMap<String, String>> selectThirdCategoryBySId(String secondCategoryId) throws SQLException{

		return null;
	}
	/**
	 * 소분류를 받아 그 소분류에 속한 제품 리스트를 조회
	 * @param thirdCategoryId : 조회할 소분류 ID
	 * @return 조회한 제품(Product)들을 담은 List
	 * @throws SQLException
	 */
	public List<Product> selectProductInfoByTId(String thirdCategoryId) throws SQLException{
		
		return null;
	}
	
}
